<!-- This HTML file has been created by texi2html 1.30
     from nb.texinfo on 28 September 1994 -->

<TITLE>GNU's Bulletin, vol. 1 no. 2</TITLE>
<H1>GNU's Bulletin, vol. 1 no. 2</H1>
<P>
<HR>
<P>
<H1><A NAME="SEC1" HREF="nb_toc.html#SEC1">Gnu's Who</A></H1>
In the first Bulletin there was a piece Gnu's Zoo telling of the
various people working on Project Gnu and connecting them with an
appropriate animal.  Matching menageries of people to menageries of
animals gets increasingly hard to do.  So I have settled for
presenting just the biography without the bestiary.
<P>
<B>Paul Rubin</B> started working for the Foundation full time this summer and
is now helping us again in January.  During the school year he studies
mathematics at UC Berkeley.  He wrote the C Compatible Compiler
Preprocessor (CCCP) and some other utilities, worked on getting the printed
Emacs manuals made, and is now developing kernel maintenance tools for
TRIX.  He likes jazz and classical music and hates cats.
<P>
<B>hack</B> (Jay Fenlason) joined project GNU full time this fall.  He's been
a UNIX hacker since high school, and wrote the original version of Hack
among other things.  He's most famous for his work on various Logo
interpreters, including LSRHS/Childrens Museum logo, and TLC logo for the
Commodore Amiga.  When he's not hacking, he reads, writes poetry, and plays
role-playing games.
<P>
<B>Diane Wells</B> has been helping all summer and fall and winter,
answering the mail and filling orders. 
<P>
<B>Stephen Gildea</B> redesigned the Emacs reference card for version 18.
The new reference card source uses TeX instead of a proprietary
formatting program.
<P>
<B>Pierre MacKay</B> typeset the masters that the Emacs manual
pages were shot from on his high quality phototypesetter.
<P>
<H3><A NAME="SEC2" HREF="nb_toc.html#SEC2">GNU'S BULLETIN</A></H3>
<P>
Copyright (C) January 1987 by the Free Software Foundation.
<P>
Editor:				Jerome E. Puzo<BR>
Asst. Editor:			Paul Rubin
<P>
<BLOCKQUOTE>
Permission is granted to anyone to make or distribute verbatim
copies of this document as received, in any medium, provided that
the copyright notice and permission notice are preserved, and
that the distributor grants the recipient permission for further
redistribution as permitted by this notice.
</BLOCKQUOTE>
<P>
<H1><A NAME="SEC3" HREF="nb_toc.html#SEC3">What is the Free Software Foundation?</A></H1>
by Richard M. Stallman
<P>
The Free Software Foundation is dedicated to eliminating restrictions
on copying, redistribution, understanding and modification of software.
<P>
The word "free" in our name does not refer to price; it refers to
freedom.  First, the freedom to copy a program and redistribute it to
your neighbors, so that they can use it as well as you.  Second, the
freedom to change a program, so that you can control it instead of it
controlling you; for this, the source code must be made available to
you.
<P>
The Foundation works to give you these freedoms by developing free
compatible replacements for proprietary software.  Specifically, we
are putting together a complete, integrated software system "GNU" that
is upward-compatible with Unix.  When it is released, everyone will be
permitted to copy it and distribute it to others; in addition, it will
be distributed with source code, so you will be able to learn about
operating systems by reading it, to port it to your own machine, to
improve it, and to exchange the changes with others.
<P>
There are already organizations that distribute free CPM and MSDOS
software.  The Free Software Foundation is doing something different.
<P>
1. The other organizations exist primarily for distribution; they
distribute whatever happens to be available.  We hope to provide a
complete integrated free system that will eliminate the need for any
proprietary software.
<P>
2. One consequence is that we are now interested only in software
that fits well into the context of the GNU system.  Distributing
free MSDOS or Macintosh software is a useful activity, but it is
not part of our game plan.
<P>
3. Another consequence is that we will actively attempt to improve and
extend the software we distribute, as fast as our manpower permits.
For this reason, we will always be seeking donations of money,
computer equipment or time, labor, and source code to improve the GNU
system.
<P>
4. In fact, our primary purpose is this software development effort;
distribution is just an adjunct which also brings in some money.  We
think that the users will do most of the distribution on their own,
without needing or wanting our help.
<P>
<H3><A NAME="SEC4" HREF="nb_toc.html#SEC4">Why a Unix-Like System?</A></H3>
<P>
It is necessary to be compatible with some widely used system to give
our system an immediate base of trained users who could switch to it
easily and an immediate base of application software that can run on
it.  (Eventually we will provide free replacements for proprietary
application software as well, but that is some years in the future.)
<P>
We chose Unix because it is a fairly clean design which is already
known to be portable, yet whose popularity is still rising.  The
disadvantages of Unix seem to be things we can fix without removing
what is good in Unix.
<P>
Why not imitate MSDOS or CP/M?  They are more widely used, true, but
they are also very weak systems, designed for tiny machines.  Unix is
much more powerful and interesting.  When a system takes years to
implement, it is important to write it for the machines that will
become available in the future; not to let it be limited by the
capabilities of the machines that are in widest use at the moment but
will be obsolete when the new system is finished.
<P>
Why not aim for a new, more advanced system, such as a Lisp Machine?
Mainly because that is still more of a research effort; there is a
sizeable chance that the wrong choices will be made and the system
will turn out not very good.  In addition, such systems are often tied
to special hardware.  Being tied to one manufacturer's machine would
make it hard to remain independent of that manufacturer and get broad
community support.
<P>
<H1><A NAME="SEC5" HREF="nb_toc.html#SEC5">GNU Project Status (3 Jan. 1987)</A></H1>
by RMS
(See also the article "GNU Software Available Now",
elsewhere in this issue).
<P>
<UL>
<P>
<LI>
<B>GNU Emacs and GDB.</B>
<P>
GNU Emacs and GDB are already released.  Berkeley is distributing GNU
Emacs with the 4.3 distribution, and DEC is going to distribute it with
Unix systems on Vaxes.
<P>
<LI>
<B>gsh, the GNU imitation C shell.</B>
<P>
Beta-test release of a C shell with input editing and
compilation of shell scripts is expected at the end of January.
<P>
The same program is supposed to imitate sh, but that doesn't work yet.
<P>
<LI>
<B>Kernel.</B>
<P>
I am planning to use a remote procedure call kernel called TRIX,
developed at MIT, as the GNU kernel.  It runs, and supports basic
Unix compatibility, but needs a lot of new features.  Its authors
have decided to distribute it free.  It was developed on an obscure,
expensive 68000 box designed years ago at MIT.
<P>
In December 1986, we started working on the changes needed to TRIX.
<P>
<LI>
<B>C compiler</B>
<P>
I am now working on finishing a new portable optimizing C compiler.
It supports the Oct 1986 draft of ANSI C and has compiled both
itself and GNU Emacs.  However, I plan to make some rearrangements
in order to enable compilation of arbitrarily large functions in
bounded amounts of memory, though with some decrease in optimization
compared to what can be done with lots of memory.
<P>
The compiler performs automatic register allocation, common
subexpression elimination, invariant code motion from loops, constant
propagation and copy propagation, delaying popping of function call
arguments, plus many local optimizations that are automatically
deduced from the machine description.  By the time it is finished it
will probably also know when to keep constant addresses in registers.
<P>
It makes shorter and faster 68020 code than the sun compiler with -O.
<P>
A new cpp was written last summer.  It is as fast as the Unix cpp.
PHR is now making it support the Oct 1986 standard.
<P>
<LI>
<B>Assembler.</B>
<P>
An assembler has been written.  It works well on Vaxes but proves to
be harder to port than I had hoped, so some rewriting is needed to
simplify the interface between the machine-dependent portions and the
machine-independent ones.
<P>
<LI>
<B>Window system.</B>
<P>
I plan to use the X window system written at MIT.  This system
is already available free.
<P>
<LI>
<B>Documentation system.</B>
<P>
I now have a truly compatible pair of programs which can convert
a file of texinfo format documentation into either a printed manual
or an Info file.
<P>
Documentation files are needed for many utilities.
<P>
<LI>
<B>Stdio</B>
<P>
A free stdio system has just been received.
<P>
<LI>
<B>Other utilities.</B>
<P>
The GNU `ls', `grep', `make' and `ld' are in regular use.  `tar'
recently appeared on USENET net.sources.  The other object-file
management utilities are written too.  `cron' and `at' were recently
submitted, and so was `m4'.  The assembler works for the Vax, but
proves to be hard to port, so it may need considerable rewriting.
<P>
`awk' is now in final testing stages. `diff' is making progress.  We
have a program like `lex' but not fully compatible; work is required
on it.
<P>
<LI>
<B>Free Software Foundation.</B>
<P>
The foundation exists for two purposes: to accept gifts to
support GNU development, and to carry out distribution.
We are now tax exempt; you can deduct donations to us
on your tax returns.
<P>
Our address is
<P>
<BLOCKQUOTE>
Free Software Foundation<BR>
1000 Mass Ave<BR>
Cambridge, MA 02138<BR>
</BLOCKQUOTE>
and our phone number is (617) 876-3296.
<P>
<LI>
<B>Service directory.</B>
<P>
The foundation now maintains a Service Directory; a list of people
who offer service to individual users of GNU Emacs and, eventually,
all parts of the GNU system.  Service can be answering questions
for new users, customizing programs, porting to new systems, or
anything else.
<P>
<LI>
<B>Possible target machines.</B>
<P>
GNU will require a cpu that uses 32-bit addresses and integers and
addresses to the 8-bit byte.  1 meg of core should be enough, though 2
meg would probably make a noticeable improvement in performance.
Running much of the system in 1/2 meg may be possible, but certainly
not GNU Emacs.  I do not expect that virtual memory will be required,
but it is VERY desirable in any case.
<P>
GNU Emacs requires more than a meg of addressable memory in the system,
although a meg of physical memory is probably enough if there is
virtual memory.
<P>
A hard disk will be essential; at least 20 meg will be needed to hold
the system plus the source code plus the manual plus swapping space.
Plus more space for the user's files, of course.
I'd recommend 80meg for a personal GNU system.
<P>
This is not to say that it will be impossible to adapt some or all
of GNU for other kinds of machines; but it may be difficult, and
I don't consider it part of my job to try to reduce that difficulty.
<P>
I have nothing to say about any specific models of microcomputer,
as I do not follow hardware products.
<P>
<LI>
<B>Porting.</B>
<P>
It is too early to inquire about porting GNU (except GNU Emacs).
First, we have to finish it.
<P>
</UL>
<P>
<H1><A NAME="SEC6" HREF="nb_toc.html#SEC6">GNU Software Available Now</A></H1>
<P>
<UL>
<LI>
<B>GNU Emacs</B>
<P>
In 1975, Richard Stallman developed the first Emacs: the
extensible, customizable real-time display editor.  GNU Emacs is
his second implementation of Emacs.  It's the first Emacs available
on Unix systems which offers true Lisp, smoothly integrated into the
editor, for writing extensions.  It also provides a special interface
to MIT's free X window system, which makes redisplay very fast.
<P>
GNU Emacs has been in widespread use since 1985 and often, as at
MIT's Project Athena, displaces proprietary implementations of Emacs
because of its greater reliability as well as its good features
and easier extensibility.
<P>
GNU Emacs has run on many kinds of Unix systems: those made by Alliant
(system release 1 or 2), AT&#38;T (3b machines and 7300 pc), Celerity,
Digital (Vax, not PDP-11), Dual, Encore, Gould, HP (9000 series 200 or
300 but not series 500), IBM (RT/PC running 4.2), Integrated Solutions
(Optimum V with 68020 and VMEbus), Masscomp, Megatest, NCR (Tower 32),
Plexus, Pyramid, Sequent, Stride (system release 2), Sun (any kind),
Tahoe, Tektronix (NS16000 system), Texas Instruments (Nu), Whitechapel
(MG1), and Wicat.  These include both Berkeley Unix and System V
(release 0, 2 or 2.2).  It also runs on Apollo machines and on
VAX/VMS.
<P>
GNU Emacs use is described by the GNU Emacs Manual, available from
the Free Software Foundation.
<P>
<LI>
<B>GDB</B>
<P>
GDB is the source-level C debugger written for the GNU project in 1986.
It offers many features not usually found in debuggers on Unix, such
as a history that records all values examined within the debugger for
concise later reference, multi-line user-defined commands, and a
strong self-documentation capability.  It currently runs on Vaxes
and Suns (systems version 2 and 3).
<P>
A users' manual for GDB is available from the Foundation.
<P>
<LI>
<B>GNU CC</B>
<P>
The GNU C compiler is a fairly portable optimizing compiler.  It
generates good 68000 and 68020 code and generated good Vax code when
it was last tested for the Vax.  It features automatic register
packing that makes register declarations unnecessary.  It supports
full ANSI C as of the latest draft standard.  We expect to release the
compiler in 1st quarter 1987.
<P>
<LI>
<B>Bison</B>
<P>
Bison is an upward-compatible replacement for YACC, with some
additional undocumented features.  It has been in use for a couple
of years.
<P>
<LI>
<B>X Window System</B>
<P>
X is a portable, network transparent window system for bitmap displays
written at MIT and DEC.  It currently runs on DEC VAXstation, Lexidata
90, and most Sun Microsystems displays, with others in the works.  X
supports overlapping windows, fully recursive subwindows, and provides
hooks for several different styles of user interface.  Applications
provided include a terminal emulator, bitmap editor, several window
managers, clock, window dump and undump programs, hardcopy printing
program for the LN03 printer, several typesetting previewers, and more.
<P>
<LI>
<B>MIT Scheme</B>
<P>
Scheme is a simplified, lexically scoped dialect of Lisp, designed at
MIT and other universities for two purposes: teaching students of
programming, and researching new parallel programming constructs
and compilation techniques.  MIT Scheme is written in C and runs on
many kinds of Unix systems.
<P>
Sorry, there is no documentation for the current distribution version
of MIT Scheme.  A new standard for Scheme has been designed by the
various labs that work on Scheme, and work is going on at MIT to
change MIT Scheme to fit.  Once that is done, the standard will serve
as a manual for MIT Scheme.  At that time, we will distribute both the
new release of Scheme and the standard.
<P>
<LI>
<B>GNU Chess</B>
<P>
GNU Chess was written in 1986 by Stuart Cracraft, who is continuing to
develop it.  It comes with an interface to the X window system to
display a pretty chessboard.  It also has an opening book which is
being added to all the time.
<P>
<LI>
<B>Hack</B>
<P>
Hack is a display oriented adventure game similar to Rogue.
</UL>
<P>
<H1><A NAME="SEC7" HREF="nb_toc.html#SEC7">How To Get GNU Software</A></H1>
<P>
All software and publications are distributed with a permission to
copy and redistribute.  The easiest way to get a copy of GNU Software 
is from someone else who has it. You need not ask for permission;
just copy it.
<P>
If you have access to the Internet, you can get the latest
distribution version of GNU Software from host `prep.ai.mit.edu'.
For more info read: <TT>`/u2/emacs/GETTING.GNU.SOFTWARE'</TT> on said host.
<P>
If you cannot get a copy in any of these ways, you can order one from
the Free Software Foundation.  Please consult the accompanying Order
Form for prices and details.
<P>
<H1><A NAME="SEC8" HREF="nb_toc.html#SEC8">Emacs 18 runs on Vax VMS.</A></H1>
<P>
<UL>
<LI>
GNU Emacs now runs on Vax VMS.
<P>
<LI>
Searching is several times faster.
<P>
<LI>
Running out of memory is never fatal.
<P>
Memory usage for strings is cut in half by a new garbage collector.
<P>
<LI>
GNU Emacs can emulate other editors: EDT, VI, Gosmacs.
<P>
<LI>
New major modes for LaTeX, Fortran, Scribe, Modula2 and Prolog.
<P>
<LI>
Terminal-independent function keys.<BR>
The first, terminal-dependent level converts a terminal's function key
codes into standard codes.  The second level maps these into commands.
Users can customize the second level and enjoy the same results
automatically on all terminal types.
<P>
<LI>
All C-c LETTER keys are reserved for users.  Such commands
previously defined by Mail mode, Picture mode and Telnet mode have
been moved.
<P>
<LI>
New Commands
<UL>
<LI>
Buffer-sorting commands.
<P>
Various new commands sort the lines, paragraphs or pages in the
region; they can also sort lines according to fields or columns.
<P>
<LI>
`occur' output now serves as a menu.<BR>
`M-x occur' now allows you to move quickly to any of the occurrences
listed.  To do this, select the <TT>`*Occur*'</TT> buffer that contains the
output of `occur', move point to the occurrence you want, and type
<KBD>C-c C-c</KBD>.
<P>
<LI>
Meta-TAB performs completion on the Emacs Lisp symbol name in the buffer.
<P>
<LI>
Dynamic abbreviation package.<BR>
The new command Meta-/ expands an abbreviation in the buffer before point
by searching the buffer for words that start with the abbreviation.
<P>
<LI>
`c-tab-always-indent' parameter tells TAB in C mode to insert a
tab character when used in the middle of a line.
<P>
<LI>
Outline mode is customizable.<BR>
You can now specify with a regexp which lines are outline headings.
Lines that separate pages are always considered headings.
</UL>
<P>
<LI>
File saving changes
<P>
<UL>
<LI>
Undo says "not modified" only when the buffer matches the disk file.
<P>
<LI>
Auto save file name now has <KBD>#</KBD> at end.<BR>
For a file <TT>`foo'</TT>, the auto save file is now called <TT>`#foo#'</TT>.  This is
so that <TT>`*.c'</TT> in a shell command will never match auto save files.
<P>
<LI>
M-x recover-file checks file dates.<BR>
M-x recover-file is used to recover a file's contents from its auto
save file.  Now this command checks the date of the auto save file
and offers to recover from it only if it is newer.
<P>
<LI>
Modifying a buffer whose file is changed on disk is detected instantly.
Thus, you are warned that something is wrong before you go ahead and
create a skewed version of the file.
<P>
<LI>
Exiting Emacs offers to save <TT>`*mail*'</TT>.
<P>
<LI>
M-x ftp-find-file and M-x ftp-write-file read and write files via Internet.
<P>
<LI>
Precious files<BR>
If you mark a buffer "precious", Emacs will save
it by renaming so that there is no time between the disappearance of
the old file and the appearance of the new one.  This is used for RMAIL files.
</UL>
<P>
<LI>
Existing Emacs usable as a server for <CODE>mail</CODE>, etc.<BR>
Programs that invoke a user-specified editor as a temporary inferior
can now be told to use an existing Emacs process instead.
<P>
<LI>
M-x disassemble disassembles byte-compiled Emacs Lisp functions.
<P>
<LI>
`substitute-key-definition' finds all keys defined as one command
and redefines them all as another command.
<P>
<LI>
New hooks for file I/O.<BR>
You can set up multiple hooks for finding and saving files.  These can
arrange automatically to get files via RCS, uncompression, ftp, etc.
<P>
<LI>
New data structure controls mode line format.<BR>
Now it is possible to change one aspect of what appears in the mode line
independently of what is being done with the rest of the mode line.
</UL>
<P>
<H1><A NAME="SEC9" HREF="nb_toc.html#SEC9">GNU Wish List</A></H1>
<P>
The GNU project can always use donations of money or equipment.
Specifically, we could use:
<P>
<UL>
<LI>
Salary for two more full time programers.
<P>
<LI>
A computer powerful enough to develop the GNU kernel on.  This means
a 68xxx/32xxx class processor with several meg of main memory and
an 80 meg disk.
<P>
<LI>
Local volunteers to help mail tapes and manuals to our clients, and
answer mail.  We need about 10 person-hours/week of help doing this.
<P>
<LI>
Dedicated people, with C and Unix knowledge, especially those with
a local (Cambridge and surrounds) address, to write programs and
documentation.  Ask for our task list if you want to help.
</UL>
<P>
<H1><A NAME="SEC10" HREF="nb_toc.html#SEC10">Thank Gnus</A></H1>
<P>
The Free Software Foundation would like to send special thank gnus to
the following:
<P>
Thanks to Stacy Goldstein.  Stacy answered the mail and filled orders
for FSF.  Her efforts got us thru a very busy season.  She then left
to continue her studies in Hawaii which she claims "is as good as they
say". 
<P>
Thanks to Todd Cooper and Henry Mensch.  They also helped out in the
mail room.
<P>
Thanks to the MIT Laboratory for Computer Science.  The LCS has
provided FSF with the loan of a TI Nu machine and a Microvax for
program development.
<P>
Thanks to Professor Dertouzos, head of LCS.  His specific decision to
support us is greatly appreciated.	
<P>
Thanks to the MIT Artificial Intelligence Laboratory for invaluable
assistance of many kinds.
<P>
Thanks to Lisp Machine, Inc.  LMI has generously provided office space,
computer resources and a mailing address for FSF.
<P>
Thanks to the European Unix Users' Group of Sweden and the Swedish
Royal Institute of Technology for their generous donations.
<P>
Thanks to those who sent money and offered help.  Thanks also to those
who support us by ordering Emacs manuals and distribution tapes.
<P>
The creation of this bulletin is our way of thanking all who have
expressed interest in what we are doing.
<P>
<HR>
